SQLite-এ Virtual Tables এবং Temporary Tables হল দুটি বিশেষ ধরনের টেবিল, যেগুলি সাধারণ টেবিলের থেকে কিছুটা আলাদা। এগুলি নির্দিষ্ট পরিস্থিতিতে বা প্রয়োজনে ব্যবহৃত হয় এবং ডাটাবেস পরিচালনায় সাহায্য করে।
১. Virtual Tables (ভার্চুয়াল টেবিল)
Virtual Tables হল এমন টেবিল, যেগুলি শারীরিকভাবে ডাটাবেসে সংরক্ষিত থাকে না, কিন্তু SQL কুয়েরি ব্যবস্থাপক (query processor) তাদেরকে একটি বাস্তব টেবিলের মতো ব্যবহার করতে পারে। এই টেবিলগুলো একটি VIRTUAL TABLE MODULE দ্বারা পরিচালিত হয়, যা SQLite-এ কাস্টম ডাটা স্টোরেজ ব্যবস্থার মাধ্যমে কাজ করে। ভার্চুয়াল টেবিলগুলো সাধারণত ফাইল সিস্টেম বা অন্যান্য সোর্স থেকে ডেটা সংগ্রহ করতে ব্যবহৃত হয়।
ভার্চুয়াল টেবিলের সুবিধা:
- ডেটা আনা: ভার্চুয়াল টেবিল কাস্টম ডাটা স্টোরেজ ব্যবস্থায় (যেমন, অন্য ডাটাবেস, API, বা ফাইল) সংরক্ষিত ডেটা পড়তে সাহায্য করে।
- SQL কুয়েরি: SQLite ভার্চুয়াল টেবিলের উপর SQL কুয়েরি চালাতে পারে, কিন্তু এর ডেটা ডাটাবেসে সংরক্ষিত থাকে না।
- অস্থায়ী তথ্য ব্যবস্থাপনা: এই টেবিলগুলি সাধারণত অস্থায়ী এবং অ্যাপ্লিকেশনের বিভিন্ন অংশের মধ্যে তথ্য স্থানান্তরের জন্য ব্যবহৃত হয়।
ভার্চুয়াল টেবিল তৈরি করা:
SQLite-এ ভার্চুয়াল টেবিল তৈরি করতে CREATE VIRTUAL TABLE কমান্ড ব্যবহার করা হয়। উদাহরণ:
CREATE VIRTUAL TABLE my_virtual_table USING fts4(content TEXT);
এই কুয়েরি fts4 ফাংশন ব্যবহার করে একটি ভার্চুয়াল টেবিল তৈরি করবে, যা একটি পূর্ণাঙ্গ টেক্সট অনুসন্ধান (Full-text search) সুবিধা প্রদান করবে।
২. Temporary Tables (অস্থায়ী টেবিল)
Temporary Tables হল এমন টেবিল যা একটি ডাটাবেস সেশন চলাকালীন সময়ে তৈরি হয় এবং সেশন শেষে স্বয়ংক্রিয়ভাবে মুছে যায়। এগুলি সাধারণত ডেটা প্রক্রিয়াকরণের জন্য ব্যবহার করা হয় এবং সেগুলোর মধ্যে সংরক্ষিত ডেটা শুধুমাত্র বর্তমান সেশন বা ট্রানজেকশনের মধ্যে থাকে।
অস্থায়ী টেবিলের সুবিধা:
- স্বয়ংক্রিয় পরিষ্কার: যখন সেশন বা ট্রানজেকশন শেষ হয়, তখন অস্থায়ী টেবিলগুলো মুছে যায়, ফলে ডাটাবেসের জায়গা অপচয় হয় না।
- প্রসেসিংয়ের জন্য উপযোগী: অস্থায়ী টেবিলগুলি সাধারণত ডেটা প্রক্রিয়াকরণ বা অস্থায়ী ফলাফল সংগ্রহের জন্য ব্যবহৃত হয়।
- স্পিড: ডেটাবেসে অস্থায়ী টেবিলগুলি সাধারণত অন্যান্য টেবিলের চেয়ে দ্রুত হয়, কারণ তারা সেশন শেষে মুছে যায় এবং দীর্ঘমেয়াদী ডাটা সঞ্চয় নয়।
অস্থায়ী টেবিল তৈরি করা:
SQLite-এ একটি অস্থায়ী টেবিল তৈরি করতে CREATE TEMPORARY TABLE কমান্ড ব্যবহার করা হয়। উদাহরণ:
CREATE TEMPORARY TABLE temp_users (
id INTEGER PRIMARY KEY,
name TEXT,
age INTEGER
);
এই কুয়েরি একটি অস্থায়ী temp_users টেবিল তৈরি করবে, যা শুধুমাত্র চলমান সেশনের জন্য থাকবে।
৩. Virtual Tables এবং Temporary Tables এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Virtual Tables | Temporary Tables |
|---|---|---|
| ডেটা সংরক্ষণ | ভার্চুয়াল টেবিলের ডেটা ডাটাবেসে সংরক্ষিত থাকে না। | অস্থায়ী টেবিলের ডেটা ডাটাবেসে সংরক্ষিত থাকে, কিন্তু সেশন শেষে মুছে যায়। |
| ব্যবহার | কাস্টম স্টোরেজ মডিউল ব্যবহার করে ডেটা পড়া। | অস্থায়ী ডেটা সঞ্চয় এবং প্রক্রিয়াকরণের জন্য ব্যবহৃত হয়। |
| মুছে ফেলা | ডাটাবেস থেকে মুছে ফেলার জন্য DROP VIRTUAL TABLE ব্যবহার করতে হয়। | সেশন শেষ হলে স্বয়ংক্রিয়ভাবে মুছে যায়। |
| পারফরম্যান্স | ভার্চুয়াল টেবিল প্রক্রিয়াকরণ দ্রুত করতে পারে, তবে কাস্টম ফাংশন ব্যবহার হয়। | অস্থায়ী টেবিলের পারফরম্যান্স সাধারণত ভালো হয়, কারণ এগুলি শুধু সেশন পর্যায়ে থাকে। |
| ব্যবহারযোগ্যতা | অন্য ডেটা সোর্স বা বিশেষ কার্যকারিতা প্রয়োজন হলে ব্যবহৃত হয়। | অস্থায়ী বা ইন্টারিম ডেটা প্রক্রিয়াকরণের জন্য ব্যবহৃত হয়। |
সারাংশ
SQLite-এ Virtual Tables এবং Temporary Tables দুটি গুরুত্বপূর্ণ টেবিল টাইপ। Virtual Tables সাধারণত কাস্টম ডেটা সোর্স বা বিশেষ স্টোরেজ মডিউল ব্যবহার করে ডেটা এক্সেস করতে ব্যবহৃত হয়, যেখানে Temporary Tables শুধুমাত্র এক সেশন বা ট্রানজেকশনের জন্য ব্যবহৃত হয় এবং সেশন শেষে স্বয়ংক্রিয়ভাবে মুছে যায়। এগুলি ডাটাবেসের পারফরম্যান্স এবং কার্যকারিতা বৃদ্ধি করতে সাহায্য করে।
Read more